package com.gopay.remote.bank.businesses;

import com.gopay.common.domain.bank.BaseMessage;
import com.gopay.common.exception.GopayException;

/**
 * 银行快捷请求接口
 * 
 * @BankExpayService.java
 * @author WangHongFei
 */
public interface ExPayService {
    
    /**
     * 快捷签约查询接口
     * @param baseMsg
     * @return
     * @throws GopayException
     */
    public Object signQuery(BaseMessage baseMsg) throws GopayException;

    /**
     * 快捷签约接口
     * 
     * @param BaseMessage
     * @return Object
     * @throws GopayException
     */
    public Object sign(BaseMessage baseMsg) throws GopayException;

    /**
     * 验签
     * 
     * @param BaseMessage
     * @return Object
     * @throws GopayException
     */
    public Object verify(BaseMessage baseMsg) throws GopayException;

    /**
     * 合约查询
     * 
     * @param BaseMessage
     * @return Object
     * @throws GopayException
     */
    public Object treatyQuery(BaseMessage baseMsg) throws GopayException;

    /**
     * 解约操作(特殊处理，其他解约在父类sign方法中完成)
     * 
     * @param BaseMessage
     * @return Object
     * @throws GopayException
     */
    public Object cancel(BaseMessage baseMsg) throws GopayException;

    /**
     * 快捷支付付款接口
     * 
     * @param BaseMessage
     * @return Object
     * @throws GopayException
     */
    public Object payment(BaseMessage baseMsg) throws GopayException;

    /**
     * 快捷支付退款接口
     * 
     * @param BaseMessage
     * @return Object
     * @throws GopayException
     */
    public Object refund(BaseMessage baseMsg) throws GopayException;
    
	/**
     * 快捷订单查询接口
     * 
     * @param BaseMessage
     * @return Object
     * @throws GopayException
     */
    public Object queryOrder(BaseMessage baseMsg) throws GopayException;
    
    /**
     * 快捷支付认证接口
     * 
     * @param BaseMessage
     * @return Object
     * @throws GopayException
     */
    public Object certification(BaseMessage baseMsg) throws GopayException;
    
    /**
     * 快捷发送短信验证码接口
     * 
     * @param BaseMessage
     * @return Object
     * @throws GopayException
     */
    public Object sendSms(BaseMessage baseMsg) throws GopayException;
    
    /**
     * 快捷验证短信验证码接口
     * 
     * @param BaseMessage
     * @return Object
     * @throws GopayException
     */
    public Object checkSms(BaseMessage baseMsg) throws GopayException;
    
    /**
     * 快捷是否输入cvv2接口
     * 
     * @param BaseMessage
     * @return Object
     * @throws GopayException
     */
    public Object queryCvn(BaseMessage baseMsg) throws GopayException;

}
